home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Serial.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  4.1 KB  |  152 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Serial.mod
  3.  
  4.      Contains:    Serial port Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE Serial;
  23.  
  24. IMPORT SYSTEM, Types;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31.     baud300*                        = 380;
  32.     baud600*                        = 189;
  33.     baud1200*                    = 94;
  34.     baud1800*                    = 62;
  35.     baud2400*                    = 46;
  36.     baud3600*                    = 30;
  37.     baud4800*                    = 22;
  38.     baud7200*                    = 14;
  39.     baud9600*                    = 10;
  40.     baud19200*                    = 4;
  41.     baud38400*                    = 1;
  42.     baud57600*                    = 0;
  43.     stop10*                        = 16384;
  44.     stop15*                        = -32768;
  45.     stop20*                        = -16384;
  46.     noParity*                    = 0;
  47.     oddParity*                    = 4096;
  48.     evenParity*                    = 12288;
  49.     data5*                        = 0;
  50.     data6*                        = 2048;
  51.     data7*                        = 1024;
  52.     data8*                        = 3072;
  53.  
  54.     ctsEvent*                    = 32;
  55.     breakEvent*                    = 128;
  56.     xOffWasSent*                    = 128;
  57.     dtrNegated*                    = 64;
  58.     ainRefNum*                    = -6;                            (*serial port A input*)
  59.     aoutRefNum*                    = -7;                            (*serial port A output*)
  60.     binRefNum*                    = -8;                            (*serial port B input*)
  61.     boutRefNum*                    = -9;                            (*serial port B output*)
  62.     swOverrunErr*                = 1;                            (*serial driver error masks*)
  63.     breakErr*                    = 8;                            (*serial driver error masks*)
  64.     parityErr*                    = 16;                            (*serial driver error masks*)
  65.     hwOverrunErr*                = 32;                            (*serial driver error masks*)
  66.     framingErr*                    = 64;                            (*serial driver error masks*)
  67.     serdOptionClockExternal*        = $40;                            (*option bit used with Control code 16*)
  68.     serdOptionPreserveDTR*        = $80;                            (*option bit used with Control code 16*)
  69.  
  70.     sPortA*                        = 0;
  71.     sPortB*                        = 1;
  72.  
  73.     
  74. TYPE
  75.     SPortSel* = Types.SInt8;
  76.  
  77. (* csCodes for serial driver Control routines *)
  78.  
  79. CONST
  80.     serdReset*                    = 8;
  81.     serdSetBuf*                    = 9;
  82.     serdHShake*                    = 10;
  83.     serdClrBrk*                    = 11;
  84.     serdSetBrk*                    = 12;
  85.     serdSetBaud*                    = 13;
  86.     serdHShakeDTR*                = 14;
  87.     serdSetMIDI*                    = 15;
  88.     serdSetMisc*                    = 16;
  89.     serdSetDTR*                    = 17;
  90.     serdClrDTR*                    = 18;
  91.     serdSetPEChar*                = 19;
  92.     serdSetPECharAlternate*        = 20;
  93.     serdSetXOff*                    = 21;
  94.     serdClrXOff*                    = 22;
  95.     serdSendXOnConditional*        = 23;
  96.     serdSendXOn*                    = 24;
  97.     serdSendXOffConditional*        = 25;
  98.     serdSendXOff*                = 26;
  99.     serdChannelReset*            = 27;
  100.     serdSet230KBaud*                = 'JF';                            (* set 230K baud data rate *)
  101.     serdSetPollWrite*            = 'jf';                            (* disable interrupt-driven transmit *)
  102.     serdSetFlushCount*            = 'FC';
  103.  
  104. (* csCodes for serial driver Status routines *)
  105.     serdGetBuf*                    = 2;
  106.     serdStatus*                    = 8;
  107.     serdGetVers*                    = 9;
  108.     serdGetVersSys*                = $8000;
  109.  
  110.  
  111. TYPE
  112.     SerShk* = (*ΔΔPACKEDΔΔ*) RECORD
  113.         fXOn*:                    Types.Byte;                                    (*XOn flow control enabled flag*)
  114.         fCTS*:                    Types.Byte;                                    (*CTS flow control enabled flag*)
  115.         xOn*:                    CHAR;                                    (*XOn character*)
  116.         xOff*:                    CHAR;                                    (*XOff character*)
  117.         errs*:                    Types.Byte;                                    (*errors mask bits*)
  118.         evts*:                    Types.Byte;                                    (*event enable mask bits*)
  119.         fInX*:                    Types.Byte;                                    (*Input flow control enabled flag*)
  120.         fDTR*:                    Types.Byte;                                    (*DTR input flow control flag*)
  121.     END;
  122.  
  123.     SerStaRec* = (*ΔΔPACKEDΔΔ*) RECORD
  124.         cumErrs*:                Types.Byte;
  125.         xOffSent*:                Types.Byte;
  126.         rdPend*:                    Types.Byte;
  127.         wrPend*:                    Types.Byte;
  128.         ctsHold*:                Types.Byte;
  129.         xOffHold*:                Types.Byte;
  130.     END;
  131.  
  132.  
  133. PROCEDURE SerReset*(refNum: INTEGER; serConfig: INTEGER): Types.OSErr;
  134.     EXTERNAL PASCAL;
  135. PROCEDURE SerSetBuf*(refNum: INTEGER; serBPtr: Types.Ptr; serBLen: INTEGER): Types.OSErr;
  136.     EXTERNAL PASCAL;
  137. PROCEDURE SerHShake*(refNum: INTEGER; (*CONST*)VAR flags: SerShk): Types.OSErr;
  138.     EXTERNAL PASCAL;
  139. PROCEDURE SerSetBrk*(refNum: INTEGER): Types.OSErr;
  140.     EXTERNAL PASCAL;
  141. PROCEDURE SerClrBrk*(refNum: INTEGER): Types.OSErr;
  142.     EXTERNAL PASCAL;
  143. PROCEDURE SerGetBuf*(refNum: INTEGER; VAR count: LONGINT): Types.OSErr;
  144.     EXTERNAL PASCAL;
  145. PROCEDURE SerStatus*(refNum: INTEGER; VAR serSta: SerStaRec): Types.OSErr;
  146.     EXTERNAL PASCAL;
  147.  
  148. (* $ALIGN RESET*)
  149. (* $POP*)
  150.  
  151.  END Serial.
  152.